package com.appkubes.mall.core.pojo;

import com.appkubes.mall.core.po.MallOrderComment;
import com.appkubes.mall.core.po.MallOrderCommentExample;
import com.appkubes.mall.core.po.MallOrderCommentWithBLOBs;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.type.JdbcType;

public interface MallOrderCommentMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @SelectProvider(type=MallOrderCommentSqlProvider.class, method="countByExample")
    long countByExample(MallOrderCommentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @DeleteProvider(type=MallOrderCommentSqlProvider.class, method="deleteByExample")
    int deleteByExample(MallOrderCommentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @Delete({
        "delete from mall_order_comment",
        "where order_comment_key = #{orderCommentKey,jdbcType=VARCHAR}"
    })
    int deleteByPrimaryKey(String orderCommentKey);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @Insert({
        "insert into mall_order_comment (order_comment_key, app_key, ",
        "user_key, order_key, ",
        "goods_score, service_score, ",
        "create_time, update_time, ",
        "version, pics, ",
        "`desc`)",
        "values (#{orderCommentKey,jdbcType=VARCHAR}, #{appKey,jdbcType=VARCHAR}, ",
        "#{userKey,jdbcType=VARCHAR}, #{orderKey,jdbcType=VARCHAR}, ",
        "#{goodsScore,jdbcType=TINYINT}, #{serviceScore,jdbcType=TINYINT}, ",
        "#{createTime,jdbcType=INTEGER}, #{updateTime,jdbcType=INTEGER}, ",
        "#{version,jdbcType=INTEGER}, #{pics,jdbcType=LONGVARCHAR}, ",
        "#{desc,jdbcType=LONGVARCHAR})"
    })
    int insert(MallOrderCommentWithBLOBs record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @InsertProvider(type=MallOrderCommentSqlProvider.class, method="insertSelective")
    int insertSelective(MallOrderCommentWithBLOBs record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @SelectProvider(type=MallOrderCommentSqlProvider.class, method="selectByExampleWithBLOBs")
    @Results({
        @Result(column="order_comment_key", property="orderCommentKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="app_key", property="appKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="order_key", property="orderKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="goods_score", property="goodsScore", jdbcType=JdbcType.TINYINT),
        @Result(column="service_score", property="serviceScore", jdbcType=JdbcType.TINYINT),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.INTEGER),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.INTEGER),
        @Result(column="version", property="version", jdbcType=JdbcType.INTEGER),
        @Result(column="pics", property="pics", jdbcType=JdbcType.LONGVARCHAR),
        @Result(column="desc", property="desc", jdbcType=JdbcType.LONGVARCHAR)
    })
    List<MallOrderCommentWithBLOBs> selectByExampleWithBLOBsWithRowbounds(MallOrderCommentExample example, RowBounds rowBounds);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @SelectProvider(type=MallOrderCommentSqlProvider.class, method="selectByExampleWithBLOBs")
    @Results({
        @Result(column="order_comment_key", property="orderCommentKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="app_key", property="appKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="order_key", property="orderKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="goods_score", property="goodsScore", jdbcType=JdbcType.TINYINT),
        @Result(column="service_score", property="serviceScore", jdbcType=JdbcType.TINYINT),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.INTEGER),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.INTEGER),
        @Result(column="version", property="version", jdbcType=JdbcType.INTEGER),
        @Result(column="pics", property="pics", jdbcType=JdbcType.LONGVARCHAR),
        @Result(column="desc", property="desc", jdbcType=JdbcType.LONGVARCHAR)
    })
    List<MallOrderCommentWithBLOBs> selectByExampleWithBLOBs(MallOrderCommentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @SelectProvider(type=MallOrderCommentSqlProvider.class, method="selectByExample")
    @Results({
        @Result(column="order_comment_key", property="orderCommentKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="app_key", property="appKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="order_key", property="orderKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="goods_score", property="goodsScore", jdbcType=JdbcType.TINYINT),
        @Result(column="service_score", property="serviceScore", jdbcType=JdbcType.TINYINT),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.INTEGER),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.INTEGER),
        @Result(column="version", property="version", jdbcType=JdbcType.INTEGER)
    })
    List<MallOrderComment> selectByExampleWithRowbounds(MallOrderCommentExample example, RowBounds rowBounds);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @SelectProvider(type=MallOrderCommentSqlProvider.class, method="selectByExample")
    @Results({
        @Result(column="order_comment_key", property="orderCommentKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="app_key", property="appKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="order_key", property="orderKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="goods_score", property="goodsScore", jdbcType=JdbcType.TINYINT),
        @Result(column="service_score", property="serviceScore", jdbcType=JdbcType.TINYINT),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.INTEGER),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.INTEGER),
        @Result(column="version", property="version", jdbcType=JdbcType.INTEGER)
    })
    List<MallOrderComment> selectByExample(MallOrderCommentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @Select({
        "select",
        "order_comment_key, app_key, user_key, order_key, goods_score, service_score, ",
        "create_time, update_time, version, pics, `desc`",
        "from mall_order_comment",
        "where order_comment_key = #{orderCommentKey,jdbcType=VARCHAR}"
    })
    @Results({
        @Result(column="order_comment_key", property="orderCommentKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="app_key", property="appKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="order_key", property="orderKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="goods_score", property="goodsScore", jdbcType=JdbcType.TINYINT),
        @Result(column="service_score", property="serviceScore", jdbcType=JdbcType.TINYINT),
        @Result(column="create_time", property="createTime", jdbcType=JdbcType.INTEGER),
        @Result(column="update_time", property="updateTime", jdbcType=JdbcType.INTEGER),
        @Result(column="version", property="version", jdbcType=JdbcType.INTEGER),
        @Result(column="pics", property="pics", jdbcType=JdbcType.LONGVARCHAR),
        @Result(column="desc", property="desc", jdbcType=JdbcType.LONGVARCHAR)
    })
    MallOrderCommentWithBLOBs selectByPrimaryKey(String orderCommentKey);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @UpdateProvider(type=MallOrderCommentSqlProvider.class, method="updateByExampleSelective")
    int updateByExampleSelective(@Param("record") MallOrderCommentWithBLOBs record, @Param("example") MallOrderCommentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @UpdateProvider(type=MallOrderCommentSqlProvider.class, method="updateByExampleWithBLOBs")
    int updateByExampleWithBLOBs(@Param("record") MallOrderCommentWithBLOBs record, @Param("example") MallOrderCommentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @UpdateProvider(type=MallOrderCommentSqlProvider.class, method="updateByExample")
    int updateByExample(@Param("record") MallOrderComment record, @Param("example") MallOrderCommentExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @UpdateProvider(type=MallOrderCommentSqlProvider.class, method="updateByPrimaryKeySelective")
    int updateByPrimaryKeySelective(MallOrderCommentWithBLOBs record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @Update({
        "update mall_order_comment",
        "set app_key = #{appKey,jdbcType=VARCHAR},",
          "user_key = #{userKey,jdbcType=VARCHAR},",
          "order_key = #{orderKey,jdbcType=VARCHAR},",
          "goods_score = #{goodsScore,jdbcType=TINYINT},",
          "service_score = #{serviceScore,jdbcType=TINYINT},",
          "create_time = #{createTime,jdbcType=INTEGER},",
          "update_time = #{updateTime,jdbcType=INTEGER},",
          "version = #{version,jdbcType=INTEGER},",
          "pics = #{pics,jdbcType=LONGVARCHAR},",
          "`desc` = #{desc,jdbcType=LONGVARCHAR}",
        "where order_comment_key = #{orderCommentKey,jdbcType=VARCHAR}"
    })
    int updateByPrimaryKeyWithBLOBs(MallOrderCommentWithBLOBs record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table mall_order_comment
     *
     * @mbg.generated
     */
    @Update({
        "update mall_order_comment",
        "set app_key = #{appKey,jdbcType=VARCHAR},",
          "user_key = #{userKey,jdbcType=VARCHAR},",
          "order_key = #{orderKey,jdbcType=VARCHAR},",
          "goods_score = #{goodsScore,jdbcType=TINYINT},",
          "service_score = #{serviceScore,jdbcType=TINYINT},",
          "create_time = #{createTime,jdbcType=INTEGER},",
          "update_time = #{updateTime,jdbcType=INTEGER},",
          "version = #{version,jdbcType=INTEGER}",
        "where order_comment_key = #{orderCommentKey,jdbcType=VARCHAR}"
    })
    int updateByPrimaryKey(MallOrderComment record);
}